home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 April: Mac OS SDK / Dev.CD Apr 98 SDK1.toast / Development Kits (Disc 1) / Interfaces&Libraries / Universal / Interfaces / PInterfaces / Connections.p < prev    next >
Encoding:
Text File  |  1998-02-12  |  11.4 KB  |  349 lines  |  [TEXT/MPS ]

  1. {
  2.      File:        Connections.p
  3.  
  4.      Contains:    Communications Toolbox Connection Manager Interfaces.
  5.  
  6.      Version:    Technology:    System 7.5
  7.                  Release:    Universal Interfaces 3.1
  8.  
  9.      Copyright:    © 1988-1998 by Apple Computer, Inc., all rights reserved
  10.  
  11.      Bugs?:        Please include the the file and version information (from above) with
  12.                  the problem description.  Developers belonging to one of the Apple
  13.                  developer programs can submit bug reports to:
  14.  
  15.                      devsupport@apple.com
  16.  
  17. }
  18. {$IFC UNDEFINED UsingIncludes}
  19. {$SETC UsingIncludes := 0}
  20. {$ENDC}
  21.  
  22. {$IFC NOT UsingIncludes}
  23.  UNIT Connections;
  24.  INTERFACE
  25. {$ENDC}
  26.  
  27. {$IFC UNDEFINED __CONNECTIONS__}
  28. {$SETC __CONNECTIONS__ := 1}
  29.  
  30. {$I+}
  31. {$SETC ConnectionsIncludes := UsingIncludes}
  32. {$SETC UsingIncludes := 1}
  33.  
  34. {$IFC UNDEFINED __CONDITIONALMACROS__}
  35. {$I ConditionalMacros.p}
  36. {$ENDC}
  37. {$IFC UNDEFINED __MACTYPES__}
  38. {$I MacTypes.p}
  39. {$ENDC}
  40. {$IFC UNDEFINED __MIXEDMODE__}
  41. {$I MixedMode.p}
  42. {$ENDC}
  43. {$IFC UNDEFINED __DIALOGS__}
  44. {$I Dialogs.p}
  45. {$ENDC}
  46.  
  47.  
  48. {$PUSH}
  49. {$ALIGN MAC68K}
  50. {$LibExport+}
  51.  
  52.  
  53. CONST
  54.     curCMVersion                = 2;                            {  current Connection Manager version }
  55.  
  56.     curConnEnvRecVers            = 0;                            {     current Connection Manager Environment Record version }
  57.  
  58.                                                                 {  CMErr  }
  59.     cmGenericError                = -1;
  60.     cmNoErr                        = 0;
  61.     cmRejected                    = 1;
  62.     cmFailed                    = 2;
  63.     cmTimeOut                    = 3;
  64.     cmNotOpen                    = 4;
  65.     cmNotClosed                    = 5;
  66.     cmNoRequestPending            = 6;
  67.     cmNotSupported                = 7;
  68.     cmNoTools                    = 8;
  69.     cmUserCancel                = 9;
  70.     cmUnknownError                = 11;
  71.  
  72.  
  73. TYPE
  74.     CMErr                                = OSErr;
  75.  
  76.  
  77. CONST
  78.     cmData                        = $00000001;
  79.     cmCntl                        = $00000002;
  80.     cmAttn                        = $00000004;
  81.     cmDataNoTimeout                = $00000010;
  82.     cmCntlNoTimeout                = $00000020;
  83.     cmAttnNoTimeout                = $00000040;
  84.     cmDataClean                    = $00000100;
  85.     cmCntlClean                    = $00000200;
  86.     cmAttnClean                    = $00000400;                    {         Only for CMRecFlags (not CMChannel) in the rest of this enum     }
  87.     cmNoMenus                    = $00010000;
  88.     cmQuiet                        = $00020000;
  89.     cmConfigChanged                = $00040000;
  90.  
  91. { CMRecFlags and CMChannel        }
  92. {        Low word of CMRecFlags is same as CMChannel    }
  93.  
  94. TYPE
  95.     CMRecFlags                            = LONGINT;
  96.     CMChannel                            = INTEGER;
  97.  
  98.  
  99.  
  100. CONST
  101.     cmStatusOpening                = $00000001;
  102.     cmStatusOpen                = $00000002;
  103.     cmStatusClosing                = $00000004;
  104.     cmStatusDataAvail            = $00000008;
  105.     cmStatusCntlAvail            = $00000010;
  106.     cmStatusAttnAvail            = $00000020;
  107.     cmStatusDRPend                = $00000040;                    {  data read pending     }
  108.     cmStatusDWPend                = $00000080;                    {  data write pending     }
  109.     cmStatusCRPend                = $00000100;                    {  cntl read pending     }
  110.     cmStatusCWPend                = $00000200;                    {  cntl write pending     }
  111.     cmStatusARPend                = $00000400;                    {  attn read pending     }
  112.     cmStatusAWPend                = $00000800;                    {  attn write pending     }
  113.     cmStatusBreakPend            = $00001000;
  114.     cmStatusListenPend            = $00002000;
  115.     cmStatusIncomingCallPresent    = $00004000;
  116.     cmStatusReserved0            = $00008000;
  117.  
  118.  
  119. TYPE
  120.     CMStatFlags                            = UInt32;
  121.  
  122. CONST
  123.     cmDataIn                    = 0;
  124.     cmDataOut                    = 1;
  125.     cmCntlIn                    = 2;
  126.     cmCntlOut                    = 3;
  127.     cmAttnIn                    = 4;
  128.     cmAttnOut                    = 5;
  129.     cmRsrvIn                    = 6;
  130.     cmRsrvOut                    = 7;
  131.  
  132.  
  133. TYPE
  134.     CMBufFields                            = UInt16;
  135.     CMBuffers                            = ARRAY [0..7] OF Ptr;
  136.     CMBufferSizes                        = ARRAY [0..7] OF LONGINT;
  137.  
  138. CONST
  139.     cmSearchSevenBit            = $00000001;
  140.  
  141.  
  142. TYPE
  143.     CMSearchFlags                        = UInt16;
  144.  
  145. CONST
  146.     cmFlagsEOM                    = $00000001;
  147.  
  148.  
  149. TYPE
  150.     CMFlags                                = UInt16;
  151.     ConnEnvironRecPtr = ^ConnEnvironRec;
  152.     ConnEnvironRec = RECORD
  153.         version:                INTEGER;
  154.         baudRate:                LONGINT;
  155.         dataBits:                INTEGER;
  156.         channels:                CMChannel;
  157.         swFlowControl:            BOOLEAN;
  158.         hwFlowControl:            BOOLEAN;
  159.         flags:                    CMFlags;
  160.     END;
  161.  
  162.     ConnRecordPtr = ^ConnRecord;
  163.     ConnPtr                                = ^ConnRecord;
  164.     ConnHandle                            = ^ConnPtr;
  165. {$IFC TYPED_FUNCTION_POINTERS}
  166.     ConnectionToolDefProcPtr = FUNCTION(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT): LONGINT;
  167. {$ELSEC}
  168.     ConnectionToolDefProcPtr = ProcPtr;
  169. {$ENDC}
  170.  
  171. {$IFC TYPED_FUNCTION_POINTERS}
  172.     ConnectionSearchCallBackProcPtr = PROCEDURE(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT);
  173. {$ELSEC}
  174.     ConnectionSearchCallBackProcPtr = ProcPtr;
  175. {$ENDC}
  176.  
  177. {$IFC TYPED_FUNCTION_POINTERS}
  178.     ConnectionCompletionProcPtr = PROCEDURE(hConn: ConnHandle);
  179. {$ELSEC}
  180.     ConnectionCompletionProcPtr = ProcPtr;
  181. {$ENDC}
  182.  
  183. {$IFC TYPED_FUNCTION_POINTERS}
  184.     ConnectionChooseIdleProcPtr = PROCEDURE;
  185. {$ELSEC}
  186.     ConnectionChooseIdleProcPtr = ProcPtr;
  187. {$ENDC}
  188.  
  189.     ConnectionToolDefUPP = UniversalProcPtr;
  190.     ConnectionSearchCallBackUPP = UniversalProcPtr;
  191.     ConnectionCompletionUPP = UniversalProcPtr;
  192.     ConnectionChooseIdleUPP = UniversalProcPtr;
  193.     ConnRecord = RECORD
  194.         procID:                    INTEGER;
  195.         flags:                    CMRecFlags;
  196.         errCode:                CMErr;
  197.         refCon:                    LONGINT;
  198.         userData:                LONGINT;
  199.         defProc:                ConnectionToolDefUPP;
  200.         config:                    Ptr;
  201.         oldConfig:                Ptr;
  202.         asyncEOM:                LONGINT;
  203.         reserved1:                LONGINT;
  204.         reserved2:                LONGINT;
  205.         cmPrivate:                Ptr;
  206.         bufferArray:            CMBuffers;
  207.         bufSizes:                CMBufferSizes;
  208.         mluField:                LONGINT;
  209.         asyncCount:                CMBufferSizes;
  210.     END;
  211.  
  212.  
  213. CONST
  214.                                                                 {  CMIOPB constants and structure  }
  215.     cmIOPBQType                    = 10;
  216.     cmIOPBversion                = 0;
  217.  
  218.  
  219. TYPE
  220.     CMIOPBPtr = ^CMIOPB;
  221.     CMIOPB = RECORD
  222.         qLink:                    QElemPtr;
  223.         qType:                    INTEGER;                                {  cmIOPBQType  }
  224.         hConn:                    ConnHandle;
  225.         theBuffer:                Ptr;
  226.         count:                    LONGINT;
  227.         flags:                    CMFlags;
  228.         userCompletion:            ConnectionCompletionUPP;
  229.         timeout:                LONGINT;
  230.         errCode:                CMErr;
  231.         channel:                CMChannel;
  232.         asyncEOM:                LONGINT;
  233.         reserved1:                LONGINT;
  234.         reserved2:                INTEGER;
  235.         version:                INTEGER;                                {  cmIOPBversion  }
  236.         refCon:                    LONGINT;                                {  for application  }
  237.         toolData1:                LONGINT;                                {  for tool  }
  238.         toolData2:                LONGINT;                                {  for tool  }
  239.     END;
  240.  
  241.  
  242. CONST
  243.     uppConnectionToolDefProcInfo = $0000FEF0;
  244.     uppConnectionSearchCallBackProcInfo = $00000FC0;
  245.     uppConnectionCompletionProcInfo = $000000C0;
  246.     uppConnectionChooseIdleProcInfo = $00000000;
  247.  
  248. FUNCTION CallConnectionToolDefProc(hConn: ConnHandle; msg: INTEGER; p1: LONGINT; p2: LONGINT; p3: LONGINT; userRoutine: ConnectionToolDefUPP): LONGINT;
  249.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  250.     INLINE $205F, $4E90;
  251.     {$ENDC}
  252.  
  253. PROCEDURE CallConnectionSearchCallBackProc(hConn: ConnHandle; matchPtr: Ptr; refNum: LONGINT; userRoutine: ConnectionSearchCallBackUPP);
  254.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  255.     INLINE $205F, $4E90;
  256.     {$ENDC}
  257.  
  258. PROCEDURE CallConnectionCompletionProc(hConn: ConnHandle; userRoutine: ConnectionCompletionUPP);
  259.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  260.     INLINE $205F, $4E90;
  261.     {$ENDC}
  262.  
  263. PROCEDURE CallConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleUPP);
  264.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  265.     INLINE $205F, $4E90;
  266.     {$ENDC}
  267.  
  268. FUNCTION NewConnectionToolDefProc(userRoutine: ConnectionToolDefProcPtr): ConnectionToolDefUPP;
  269.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  270.     INLINE $2E9F;
  271.     {$ENDC}
  272.  
  273. FUNCTION NewConnectionSearchCallBackProc(userRoutine: ConnectionSearchCallBackProcPtr): ConnectionSearchCallBackUPP;
  274.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  275.     INLINE $2E9F;
  276.     {$ENDC}
  277.  
  278. FUNCTION NewConnectionCompletionProc(userRoutine: ConnectionCompletionProcPtr): ConnectionCompletionUPP;
  279.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  280.     INLINE $2E9F;
  281.     {$ENDC}
  282.  
  283. FUNCTION NewConnectionChooseIdleProc(userRoutine: ConnectionChooseIdleProcPtr): ConnectionChooseIdleUPP;
  284.     {$IFC TARGET_OS_MAC AND TARGET_CPU_68K AND NOT TARGET_RT_MAC_CFM}
  285.     INLINE $2E9F;
  286.     {$ENDC}
  287.  
  288.  
  289. FUNCTION InitCM: CMErr;
  290. FUNCTION CMGetVersion(hConn: ConnHandle): Handle;
  291. FUNCTION CMGetCMVersion: INTEGER;
  292. FUNCTION CMNew(procID: INTEGER; flags: CMRecFlags; VAR desiredSizes: CMBufferSizes; refCon: LONGINT; userData: LONGINT): ConnHandle;
  293. PROCEDURE CMDispose(hConn: ConnHandle);
  294. FUNCTION CMListen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  295. FUNCTION CMAccept(hConn: ConnHandle; accept: BOOLEAN): CMErr;
  296. FUNCTION CMOpen(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT): CMErr;
  297. FUNCTION CMClose(hConn: ConnHandle; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; now: BOOLEAN): CMErr;
  298. FUNCTION CMAbort(hConn: ConnHandle): CMErr;
  299. FUNCTION CMStatus(hConn: ConnHandle; VAR sizes: CMBufferSizes; VAR flags: CMStatFlags): CMErr;
  300. PROCEDURE CMIdle(hConn: ConnHandle);
  301. PROCEDURE CMReset(hConn: ConnHandle);
  302. PROCEDURE CMBreak(hConn: ConnHandle; duration: LONGINT; async: BOOLEAN; completor: ConnectionCompletionUPP);
  303. FUNCTION CMRead(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toRead: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; VAR flags: CMFlags): CMErr;
  304. FUNCTION CMWrite(hConn: ConnHandle; theBuffer: UNIV Ptr; VAR toWrite: LONGINT; theChannel: CMChannel; async: BOOLEAN; completor: ConnectionCompletionUPP; timeout: LONGINT; flags: CMFlags): CMErr;
  305. FUNCTION CMIOKill(hConn: ConnHandle; which: INTEGER): CMErr;
  306. PROCEDURE CMActivate(hConn: ConnHandle; activate: BOOLEAN);
  307. PROCEDURE CMResume(hConn: ConnHandle; resume: BOOLEAN);
  308. FUNCTION CMMenu(hConn: ConnHandle; menuID: INTEGER; item: INTEGER): BOOLEAN;
  309. FUNCTION CMValidate(hConn: ConnHandle): BOOLEAN;
  310. PROCEDURE CMDefault(VAR theConfig: Ptr; procID: INTEGER; allocate: BOOLEAN);
  311. FUNCTION CMSetupPreflight(procID: INTEGER; VAR magicCookie: LONGINT): Handle;
  312. FUNCTION CMSetupFilter(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theEvent: EventRecord; VAR theItem: INTEGER; VAR magicCookie: LONGINT): BOOLEAN;
  313. PROCEDURE CMSetupSetup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR magicCookie: LONGINT);
  314. PROCEDURE CMSetupItem(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; VAR theItem: INTEGER; VAR magicCookie: LONGINT);
  315. PROCEDURE CMSetupXCleanup(procID: INTEGER; theConfig: UNIV Ptr; count: INTEGER; theDialog: DialogPtr; OKed: BOOLEAN; VAR magicCookie: LONGINT);
  316. PROCEDURE CMSetupPostflight(procID: INTEGER);
  317. FUNCTION CMGetConfig(hConn: ConnHandle): Ptr;
  318. FUNCTION CMSetConfig(hConn: ConnHandle; thePtr: UNIV Ptr): INTEGER;
  319. FUNCTION CMIntlToEnglish(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  320. FUNCTION CMEnglishToIntl(hConn: ConnHandle; inputPtr: UNIV Ptr; VAR outputPtr: Ptr; language: INTEGER): OSErr;
  321. FUNCTION CMAddSearch(hConn: ConnHandle; theString: Str255; flags: CMSearchFlags; callBack: ConnectionSearchCallBackUPP): LONGINT;
  322. PROCEDURE CMRemoveSearch(hConn: ConnHandle; refnum: LONGINT);
  323. PROCEDURE CMClearSearch(hConn: ConnHandle);
  324. FUNCTION CMGetConnEnvirons(hConn: ConnHandle; VAR theEnvirons: ConnEnvironRec): CMErr;
  325. FUNCTION CMChoose(VAR hConn: ConnHandle; where: Point; idle: ConnectionChooseIdleUPP): INTEGER;
  326. PROCEDURE CMEvent(hConn: ConnHandle; {CONST}VAR theEvent: EventRecord);
  327. PROCEDURE CMGetToolName(procID: INTEGER; VAR name: Str255);
  328. FUNCTION CMGetProcID(name: Str255): INTEGER;
  329. PROCEDURE CMSetRefCon(hConn: ConnHandle; refCon: LONGINT);
  330. FUNCTION CMGetRefCon(hConn: ConnHandle): LONGINT;
  331. FUNCTION CMGetUserData(hConn: ConnHandle): LONGINT;
  332. PROCEDURE CMSetUserData(hConn: ConnHandle; userData: LONGINT);
  333. PROCEDURE CMGetErrorString(hConn: ConnHandle; id: INTEGER; VAR errMsg: Str255);
  334. FUNCTION CMNewIOPB(hConn: ConnHandle; VAR theIOPB: CMIOPBPtr): CMErr;
  335. FUNCTION CMDisposeIOPB(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  336. FUNCTION CMPBRead(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  337. FUNCTION CMPBWrite(hConn: ConnHandle; theIOPB: CMIOPBPtr; async: BOOLEAN): CMErr;
  338. FUNCTION CMPBIOKill(hConn: ConnHandle; theIOPB: CMIOPBPtr): CMErr;
  339. {$ALIGN RESET}
  340. {$POP}
  341.  
  342. {$SETC UsingIncludes := ConnectionsIncludes}
  343.  
  344. {$ENDC} {__CONNECTIONS__}
  345.  
  346. {$IFC NOT UsingIncludes}
  347.  END.
  348. {$ENDC}
  349.